//解构赋值：允许按照一定的规则，从对象和数组内取值，并变量赋值

//对象 属性

// let {username,password} = ctx.request.body; 

// let {pagenum,limit=1} = ctx.query;

// ctx.params;

//restful风格的接口定义

// module.exports = () => {
//     return async (ctx,next) => {
//         if(ctx.method === 'POST'){
//             //post 请求
//             ctx.params = {...ctx.request.body,...ctx.params};
//         }else if(ctx.method === 'GET'){
//             //get 请求
//             ctx.params = {...ctx.query,...ctx.params};
//         }
//         await next()
//     }
// }

let person = {name:'lili'};

//起别名  给默认值

let {name:n,age=10} = person;

console.log(age)

//... 扩展运算符

//数组解构  下标
let a = 10;
let b = 20;

//不借助第三个变量的情况下，交换值

[b,a] = [a,b];

console.log(a,b) //20 10

let arr1 = [1,2];

let arr2 = [3,4];

let arr = [...arr1,...arr2];

console.log(arr);

//函数参数的解构

//注册

// function registry({username,password=123}){
//     console.log(username,password)
// }


// registry({username:'zs'})

//rest 参数：剩余参数组成的数组  函数参数的最后

function sum(str,...nums){
    console.log(nums)
    return nums.reduce((pre,cur) => {
        return pre+cur
    })
}

console.log(sum('sum',1,2,3,4,5)) //传递的参数个数

let str = `hello${person.name}`;





